#ifndef BezierInterpolationMap_h
#define BezierInterpolationMap_h

#include <stdlib.h>

struct Coordinate {
	float x, y;
};

class BezierInterpolationMap {
	Coordinate controlPoint1;
	Coordinate controlPoint2;
	Coordinate** coordinates;
	int numberOfCoordinates;
	void lerp(Coordinate&, Coordinate&, Coordinate&, float);
	void calculateCoordinate(Coordinate&, float);
	public:
		void init();
		int minInputValue, maxInputValue, minOutputValue, maxOutputValue;
		void setControlPoint1(int, int);
		void setControlPoint2(int, int);
		int mapInputValue(int);
		float getStep(int inputValue);
};

BezierInterpolationMap* newBezierInterpolationMap();

#endif
